package apiday05.homework.day05;

import java.util.*;

/**
 * 创建一个Map，保存某个学生的成绩:
 * 在控制台输入该学生成绩，格式:
 * 科目:成绩;科目:成绩;...
 * 例如:
 * 语文:99;数学:98;英语:97;物理:96;化学:95
 * 然后输出物理的成绩。
 * 然后将化学的成绩设置为96
 * 然后删除英语这一项。
 * 然后遍历该Map分别按照遍历key，Entry，value
 * 的形式输出该Map信息。
 *
 * @author Xiloer
 */
public class Test04 {
    public static void main(String[] args) {
//        语文:99;数学:98;英语:97;物理:96;化学:95
        Map<String, Integer> scoreMap = new HashMap<>();
        Scanner sc = new Scanner(System.in);
        System.out.println("输入成绩：（格式:科目:成绩;科目:成绩;...）");
        String input = sc.nextLine();
//        将输入的成绩保存在map中
        String[] scores = input.split(";");
        for (String score : scores) {
            String[] scoNum = score.split(":");
            String subject = scoNum[0];
            Integer grade = Integer.parseInt(scoNum[1]);
            scoreMap.put(subject, grade);
        }
        System.out.println("初始成绩：" + scoreMap);
//        输出物理的成绩
        Integer value = scoreMap.get("物理");
        System.out.println("物理成绩：" + value);
//        将化学的成绩设置为96
        scoreMap.put("化学", 96);
//        删除英语
        scoreMap.remove("英语");
//        遍历key
        Set<String> keySet = scoreMap.keySet();
        keySet.forEach(v -> System.out.println(v));
//        keySet.forEach(System.out::println);
//        遍历Entry
        Set<Map.Entry<String, Integer>> entrySet = scoreMap.entrySet();
        entrySet.forEach(e -> System.out.println(e.getKey() + ":" + e.getValue()));
//        scoreMap.forEach((k,v)-> System.out.println(k+":"+v));
//        遍历value
        Collection<Integer> values = scoreMap.values();
        values.forEach(v -> System.out.println(v));
//        values.forEach(System.out::println);
    }
}
